package com.ruoyi.project.orderSystem.domain;

import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import com.ruoyi.framework.web.domain.BaseEntity;

/**
 * 工单对象 work_order
 * 
 * @author wangshuo
 * @date 2021-01-24
 */
public class WorkOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 工单编号 */
    @Excel(name = "工单编号")
    private String orderSn;

    /** 1.巡检，2.保养，3.维护,4.维修 */
    @Excel(name = "1.巡检，2.保养，3.维护,4.维修")
    private Integer orderType;

    /** 0.未开始，1.进行中，2.已完成,3.已归档，4.驳回 */
    @Excel(name = "0.未开始，1.进行中，2.已完成,3.已归档，4.驳回")
    private Integer orderStatus;

    /** 是否派发，1.是，0.否 */
    @Excel(name = "是否派发，1.是，0.否")
    private Integer isSeed;

    /** 是否延期：0.否，1.是 */
    @Excel(name = "是否延期：0.否，1.是")
    private Integer isDelay;

    /** 工单执行人id集合*/
    @Excel(name = "用户id")
    private String executorIds;

    /** 工单说明 */
    @Excel(name = "工单说明")
    private String orderTitle;

    /** 工单说明 */
    @Excel(name = "工单说明")
    private String orderDescription;

    /** 派发人 */
    @Excel(name = "派发人")
    private Long seedUser;

    /** 扩展字段 */
    @Excel(name = "扩展字段")
    private String extraField;

    /** 要求开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "要求开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date gmtRequireStart;

    /** 要求完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "要求完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date gmtRequireEnd;

    /** 实际开始时间 */
    @Excel(name = "时间开始时间")
    private Date gmtActualStart;

    /** 实际完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实际完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date gmtActualEnd;

    /** 工单指定人 */
    @Excel(name = "工单指定人")
    private Long creator;

    /** 工单修改人 */
    @Excel(name = "工单修改人")
    private Long modifier;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date gmtCreate;

    /** 修改时间 */
    @Excel(name = "修改时间")
    private Date gmtModify;

    private Long taskId;

    private long[] executorIdArr;

    private Long[] stationIds;

    private String[] stationCodes;

    private Long executorId;
    private String seedUserName;
    private String executorName;
    private String creatorName;
    private List<Integer> orderStatusList;

    private List<OrderStation> orderStationList;

    /**
     * 完成按钮是否显示
     */
    private Integer remainHandle;

    /**
     * 审核工单实体
     */
    private WorkOrderAudit workOrderAudit;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setOrderSn(String orderSn) 
    {
        this.orderSn = orderSn;
    }

    public Long getExecutorId() {
        return executorId;
    }

    public void setExecutorId(Long executorId) {
        this.executorId = executorId;
    }

    public String getOrderSn()
    {
        return orderSn;
    }
    public void setOrderType(Integer orderType)
    {
        this.orderType = orderType;
    }

    public Integer getOrderType()
    {
        return orderType;
    }
    public void setOrderStatus(Integer orderStatus)
    {
        this.orderStatus = orderStatus;
    }

    public Integer getOrderStatus()
    {
        return orderStatus;
    }
    public void setIsSeed(Integer isSeed)
    {
        this.isSeed = isSeed;
    }

    public Integer getIsSeed()
    {
        return isSeed;
    }
    public void setIsDelay(Integer isDelay)
    {
        this.isDelay = isDelay;
    }

    public Integer getIsDelay()
    {
        return isDelay;
    }

    public String getExecutorIds() {
        return executorIds;
    }

    public void setExecutorIds(String executorIds) {
        this.executorIds = executorIds;
    }

    public String getOrderTitle() {
        return orderTitle;
    }

    public void setOrderTitle(String orderTitle) {
        this.orderTitle = orderTitle;
    }

    public void setOrderDescription(String orderDescription)
    {
        this.orderDescription = orderDescription;
    }

    public String getOrderDescription() 
    {
        return orderDescription;
    }
    public void setSeedUser(Long seedUser) 
    {
        this.seedUser = seedUser;
    }

    public Long getSeedUser() 
    {
        return seedUser;
    }
    public void setExtraField(String extraField)
    {
        this.extraField = extraField;
    }

    public String getExtraField()
    {
        return extraField;
    }
    public void setGmtRequireStart(Date gmtRequireStart) 
    {
        this.gmtRequireStart = gmtRequireStart;
    }

    public Date getGmtRequireStart() 
    {
        return gmtRequireStart;
    }
    public void setGmtRequireEnd(Date gmtRequireEnd) 
    {
        this.gmtRequireEnd = gmtRequireEnd;
    }

    public Date getGmtRequireEnd() 
    {
        return gmtRequireEnd;
    }
    public void setGmtActualStart(Date gmtActualStart)
    {
        this.gmtActualStart = gmtActualStart;
    }

    public Date getGmtActualStart()
    {
        return gmtActualStart;
    }
    public void setGmtActualEnd(Date gmtActualEnd) 
    {
        this.gmtActualEnd = gmtActualEnd;
    }

    public Date getGmtActualEnd() 
    {
        return gmtActualEnd;
    }
    public void setCreator(Long creator) 
    {
        this.creator = creator;
    }

    public Long getCreator() 
    {
        return creator;
    }
    public void setModifier(Long modifier) 
    {
        this.modifier = modifier;
    }

    public Long getModifier() 
    {
        return modifier;
    }
    public void setGmtCreate(Date gmtCreate) 
    {
        this.gmtCreate = gmtCreate;
    }

    public Date getGmtCreate() 
    {
        return gmtCreate;
    }
    public void setGmtModify(Date gmtModify)
    {
        this.gmtModify = gmtModify;
    }

    public Date getGmtModify()
    {
        return gmtModify;
    }

    public long[] getExecutorIdArr() {
        return executorIdArr;
    }

    public void setExecutorIdArr(long[] executorIdArr) {
        this.executorIdArr = executorIdArr;
    }

    public Long getTaskId() {
        return taskId;
    }

    public void setTaskId(Long taskId) {
        this.taskId = taskId;
    }

    public Long[] getStationIds() {
        return stationIds;
    }

    public void setStationIds(Long[] stationIds) {
        this.stationIds = stationIds;
    }

    public static long getSerialVersionUID() {
        return serialVersionUID;
    }

    public String getSeedUserName() {
        return seedUserName;
    }

    public void setSeedUserName(String seedUserName) {
        this.seedUserName = seedUserName;
    }

    public String getExecutorName() {
        return executorName;
    }

    public void setExecutorName(String executorName) {
        this.executorName = executorName;
    }

    public String getCreatorName() {
        return creatorName;
    }

    public void setCreatorName(String creatorName) {
        this.creatorName = creatorName;
    }

    public List<OrderStation> getOrderStationList() {
        return orderStationList;
    }

    public void setOrderStationList(List<OrderStation> orderStationList) {
        this.orderStationList = orderStationList;
    }

    public List<Integer> getOrderStatusList() {
        return orderStatusList;
    }

    public void setOrderStatusList(List<Integer> orderStatusList) {
        this.orderStatusList = orderStatusList;
    }

    public Integer getRemainHandle() {
        return remainHandle;
    }

    public void setRemainHandle(Integer remainHandle) {
        this.remainHandle = remainHandle;
    }

    public WorkOrderAudit getWorkOrderAudit() {
        return workOrderAudit;
    }

    public void setWorkOrderAudit(WorkOrderAudit workOrderAudit) {
        this.workOrderAudit = workOrderAudit;
    }

    public String[] getStationCodes() {
        return stationCodes;
    }

    public void setStationCodes(String[] stationCodes) {
        this.stationCodes = stationCodes;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("orderSn", getOrderSn())
            .append("orderType", getOrderType())
            .append("orderStatus", getOrderStatus())
            .append("isSeed", getIsSeed())
            .append("isDelay", getIsDelay())
            .append("executorIds", getExecutorIds())
            .append("orderTitle", getOrderTitle())
            .append("orderDescription", getOrderDescription())
            .append("seedUser", getSeedUser())
            .append("extraField", getExtraField())
            .append("gmtRequireStart", getGmtRequireStart())
            .append("gmtRequireEnd", getGmtRequireEnd())
            .append("gmtActualStart", getGmtActualStart())
            .append("gmtActualEnd", getGmtActualEnd())
            .append("creator", getCreator())
            .append("modifier", getModifier())
            .append("gmtCreate", getGmtCreate())
            .append("gmtModify", getGmtModify())
            .toString();
    }
}
